print("Hello World")

--整数, 小数
print(3)
print(3.25)

-- 把一个小数变成整数
print(math.floor(3.2))

--逻辑数
print(true)
print(false)

--局部变量
 --[[
	局部变量定义在哪里，那么它的作用范围就在哪里;
	系统会为局部变量分配一个内存,这个内存只能存基本数据类型或复杂数据类型的引用;
	复杂数据类型：字符串、表、函数对象
 --]]

local temp
print(temp) --输出 nil

--定义的时候也可以赋值
local x = 1
print(x) --输出 1

--tmp 存的是指向字符串Hello World 对象的引用
local tmp = "Hello World"
print(tmp)

-- 定义 tmp1 是空
local tmp1 = nil --空
print(tmp1) --输出nil

--如果变量没有赋值或一个空的值，我们可以用nil来表示;
local tmp2
print(tmp2) --输出nil
--如果是一个不存在的变量或名字
print(tmp3) --输出nil

--表
local list = {
	[0] = 1,	--整数为索引
	[1] = 2,
	helloworld = 3, --字符串为索引
	["0"] = 4,	--整数为索引
}
print(list)
--整数索引
print(list[0]) --输出1

print(list["0"]) --输出4

--字符串索引	
print(list['helloworld']) --输出3
print(list.helloworld) --输出3

--还可以额外加
list.test_value = false
print(list.test_value)--输出false
print(list["test_value"]) --输出false


--函数对象 :复杂的对象
function add_func(lsh,rhs)
	return lsh + rhs;  -- return 可以返回数据，
	--return {}; 也可一返回数据对象
	-- return 由当前函数，返回到调用它的地方
end

local func_ptr = add_func

--函数调用
print(func_ptr(3,4))
print(add_func(3,4))

